package db

import (
	"context"
	"douyin_mini/pkg/constants"
	"fmt"
	"gorm.io/gorm"
)

type Comment struct {
	gorm.Model
	VideoId int64  `json:"video_id" gorm:"column:video_id"`
	UserId  int64  `json:"user_id" gorm:"column:user_id"`
	Content string `json:"content" gorm:"column:content"`
}

func (c *Comment) TableName() string {
	return constants.CommentsTableName
}

// CreateComment 添加评论
func CreateComment(ctx context.Context, comments []*Comment) error {
	return DB.WithContext(ctx).Create(comments).Error
}

// DeleteComment 删除评论
func DeleteComment(ctx context.Context, id int64) error {
	if err := DB.WithContext(ctx).Where("id = ?", id).Delete(&Comment{}).Error; err != nil {
		return err
	}
	return nil
}

// GetCommentsList 查询视频所有的评论
// 注意不是详细comment，详细的用户内容需要进行user微服务的调用
func GetCommentsList(ctx context.Context, videoID int64) ([]*Comment, error) {
	res := make([]*Comment, 0)
	fmt.Println(&DB)
	if err := DB.WithContext(ctx).Model(&Comment{}).Where("video_id = ?", string(videoID)).Find(&res).Error; err != nil {
		return nil, err
	}
	fmt.Println(res)
	return res, nil
}
